echo -e "\033[1m ------------------------正在安装FTP===============================—————\033[0m"
echo -e "\033[5;35m --------------请耐心等待，在此之间为避免意外请不要按键盘-----------------\033[0m"
echo -e "\033[5;35m --------------你现在可以去买一份泡面，接上热水等待，然后你会发现你没带钱-----------------\033[0m"
yum install vsftpd -y
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak     ###备份原配置文件
sed -i 's/SELINUX=.*/SELINUX=disable/g' /etc/selinux/config
setenforce 0
read -p "请输入FTP默认根目录,默认使用/data/ftp
需使用绝对目录(即前面带/)" fdir
echo -e "##关闭匿名登陆\n
anonymous_enable=NO\n
##允许本地登陆
local_enable=YES\n
##允许登陆用户有写权限
write_enable=YES\n
##默认创建新文件权限为755
local_umask=022\n
##允许匿名用户上传/建立目录
anon_mkdir_write_enable=YES\n
##启用服务器日志和欢迎信息 
dirmessage_enable=YES\n
##FTP服务器记录上传下载的情况
xferlog_enable=YES\n
#主动模式进行数据传输时使用20端口
connect_from_port_20=YES\n
#传输日志文件将以标准 xferlog 的格式书写
xferlog_std_format=YES\n
#允许ASCⅡ模式的下载
ascii_download_enable=YES\n
#启用 chroot 写入列表的功能
chroot_list_enable=YES\n
#此文件列出的用户能够浏览其主目录上级目录中的内容
chroot_list_file=/etc/vsftpd/chroot_list\n
#使vsftpd侦听的地址为IPv4
listen=NO\n
#使vsftpd侦听的地址为IPv6
listen_ipv6=YES\n
#PAM 服务名称
pam_service_name=vsftpd\n
#ftpusers不受任何配制项的影响，它总是有效，它是一个黑名单
#当userlist_enable=YES时，userlist_deny=YES时：user_list是一个黑名单，即：所有出现在名单中的用户都会被拒绝登入
#当userlist_enable=YES时，userlist_deny=NO时：user_list是一个白名单，即：只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入)；另外需要特别提醒的是：使用白名单后，匿名用户将无法登入！除非显式在user_list中加入一行：anonymous
##
userlist_enable=NO\n
##解释在上面
userlist_deny=NO
#安全监测
tcp_wrappers=NO\n
#ftp服务端口
listen_port=21\n
userlist_file=/etc/vsftpd/user_list\n
allow_writeable_chroot=YES" > /etc/vsftpd/vsftpd.conf
if [ -n $fdir ];then
    mkdir -p /data/ftp
    echo -e '/data/ftp/' >> /etc/vsftpd/vsftpd.conf
else
    mkdir $fdir
    echo -e "$fdir" >> /etc/vsftpd/vsftpd.conf
fi
#sed -i 's/#write_enable=YES/write_enable=YES/g' /etc/vsftpd/vsftpd.conf  ##允许登陆用户有写权限
#sed -i 's/anonymous_enable=YES/anonymous_enable=NO/g' /etc/vsftpd/vsftpd.conf     ###关闭匿名登录
#sed -i 's/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g' /etc/vsftpd/vsftpd.conf #可创建目录的同时可以在此目录中上传文件  
#sed -i 's/#data_connection_timeout=120/data_connection_timeout=120/g' /etc/vsftpd/vsftpd.conf  ##建立FTP数据连接的超时时间 
#sed -i 's/#chroot_list_file/chroot_list_file/g' /etc/vsftpd/vsftpd.conf #指定用户列表文件，该文件用于控制哪些用户可以切换到用户家目录的上级目录。
#sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/g' /etc/vsftpd/vsftpd.conf #启用chroot_list_file配置项指定的用户列表文件。默认值为NO
#sed -i 's/tcp_wrappers=YES/tcp_wrappers=NO/g' /etc/vsftpd/vsftpd.conf #设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制
#sed -i 's/userlist_enable=YES/userlist_enable=NO/g' /etc/vsftpd/vsftpd.conf
#sed -i 's/#ascii_download_enable=YES/ascii_download_enable=YES/g' /etc/vsftpd/vsftpd.conf  
#sed -i 's/#chroot_local/chroot_local/g' /etc/vsftpd/vsftpd.conf #可以切换到其他目录；未在文件中列出的用户，不能切换到其他目录  
#echo "listen_port=21" >> /etc/vsftpd/vsftpd.conf #设置FTP服务器建立连接所监听的端口，默认值为21。
#echo "pasv_max_port=0" >> /etc/vsftpd/vsftpd.conf #
#echo "pasv_min_port=0" >> /etc/vsftpd/vsftpd.conf #在PASV工作模式下，数据连接可以使用的端口范围的最小端口，0 表示任意端口。默认值为0
#echo "userlist_deny=NO" >> /etc/vsftpd/vsftpd.conf  #决定vsftpd.user_list文件中的用户是否能够访问FTP服务器
##如果userlist_enable=YES,userlist_deny=NO,此时如果在vsftpd.user_list和ftpusers中都有某个用户时，那么这个用户是不能够访问FTP的，即ftpusers的优先级要高#
#echo "userlist_file=/etc/vsftpd/user_list" >> /etc/vsftpd/vsftpd.conf #控制用户访问FTP的文件，里面写着用户名称。一个用户名称一行。
#echo "local_root=/var/ftp/$ftpuser" >> /etc/vsftpd/vsftpd.conf  #本地用户登入时，将被更换到定义的目录
#echo "user_config_dir=/etc/vsftpd/vsftpd/user_config_dir" >> /etc/vsftpd/vsftpd.conf #设置用户配置文件所在的目录
#echo "$ftpuser" >> /etc/vsftpd/user_list
#echo "anon_root=/home/FTP" >> /etc/vsftpd/vsftpd.conf
#echo "local_root=/var/www/html/" >> /etc/vsftpd/vsftpd.conf
#echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf